// 将SetMetadata封装成自定义装饰器
import { SetMetadata, createParamDecorator, ExecutionContext } from "@nestjs/common";

export const RequireLogin = () => SetMetadata('require-login', true);

// 自定义一个获取request中用户信息的装饰器，data就是装饰器使用者传递过来的参数
export const UserInfo = createParamDecorator((data: string, ctx: ExecutionContext) => {
    const request = ctx.switchToHttp().getRequest();
    if (!request.user) return null;

    return data ? request.user[data] : request.user;
})